import org.apache.spark.{SparkConf, SparkContext}

object scala4271 {
  def main(args: Array[String]): Unit = {
    // 创建 Spark 配置
    val conf = new SparkConf().setAppName("SimpleRDDJoinExample").setMaster("local[*]")
    // 创建 Spark 上下文
    val sc = new SparkContext(conf)

    // 创建两个简单的 RDD 用于连接操作
    val rdd1 = sc.parallelize(Seq(("A", 1), ("B", 2)))
    val rdd2 = sc.parallelize(Seq(("A", 10), ("C", 30)))

    // 内连接
    val innerJoinResult = rdd1.join(rdd2)
    println("内连接结果:")
    innerJoinResult.collect().foreach(println)

    // 左外连接
    val leftOuterJoinResult = rdd1.leftOuterJoin(rdd2)
    println("左外连接结果:")
    leftOuterJoinResult.collect().foreach(println)

    // 右外连接
    val rightOuterJoinResult = rdd1.rightOuterJoin(rdd2)
    println("右外连接结果:")
    rightOuterJoinResult.collect().foreach(println)

    // 全外连接
    val fullOuterJoinResult = rdd1.fullOuterJoin(rdd2)
    println("全外连接结果:")
    fullOuterJoinResult.collect().foreach(println)

    // 停止 Spark 上下文
    sc.stop()
  }
}